﻿#region Header
// ------------------------ Licence / Copyright ------------------------
// 
// ScrumTable for Scrum Meeting Support
// Copyright © HSR - Hochschule für Technik Rapperswil
// All Rights Reserved
// 
// Author:
//  Michael Gfeller Silvan Gehrig Patrick Boos
// 
// ---------------------------------------------------------------------
#endregion

#region Usings

using System;
using System.Collections.Generic;
using System.IO;
using ScrumTable.Common.Reflection;
using ScrumTable.Common.Test;

#endregion

namespace ScrumTable.Common.Test
{
    /// <summary>
    /// Contains the global resources required for the current
    /// test library.
    /// </summary>
    public static class Resources
    {
        #region Declarations
        //--------------------------------------------------------------------
        // Declarations
        //--------------------------------------------------------------------

        internal const string ValueParseFirstValue = "Value1";
        internal const string ValueParseSecondValue = "Value2";
        internal const string ValueParseThirdValue = "Value3";
        internal const string ValueParseStringOutput = "{Value1}, {Value2}, {Value3}";

        private const string IniParseFirstLineKey = "The";
        private const string IniParseFirstLineValue = "Quick";
        private const string IniParseSecondLineKey = "Brown";
        private const string IniParseSecondLineValue = "Fox";
        private const string IniParseThirdLineKey = "Jumps";
        private const string IniParseThirdLineValue = "Over";
        private const string IniParseForthLineKey = "The";
        private const string IniParseForthLineValue = "Lazy";
        private const string IniParseFithLineKey = "Dog";
        private const string IniParseFithLineValue = "";

        /// <summary>
        /// Gets the test parse string for the ini parser.
        /// </summary>
        internal const string IniParseString =
            IniParseFirstLineKey + " = " + IniParseFirstLineValue
            + "\n" + IniParseSecondLineKey + "=" + IniParseSecondLineValue
            + "\n\n" + IniParseThirdLineKey + " = " + IniParseThirdLineValue
            + "\n" + IniParseForthLineKey + "=" + IniParseForthLineValue
            + "\n" + IniParseFithLineKey + "=" + IniParseFithLineValue + "\n";

        /// <summary>
        /// Gets the test parse string for the ini parser.
        /// </summary>
        internal const string IniParseStringOutput =
            IniParseFirstLineKey + " = " + IniParseFirstLineValue
            + "\r\n" + IniParseSecondLineKey + " = " + IniParseSecondLineValue
            + "\r\n" + IniParseThirdLineKey + " = " + IniParseThirdLineValue
            + "\r\n" + IniParseForthLineKey + " = " + IniParseForthLineValue
            + "\r\n" + IniParseFithLineKey + " = " + IniParseFithLineValue
            + "\r\n";

        /// <summary>
        /// Gets the expected parse data of the parse string.
        /// </summary>
        /// <remarks>
        /// See static constructor for more information.
        /// </remarks>
        internal static readonly Dictionary<string, string> IniParseData;

        /// <summary>
        /// Gets the expected parse data of the parse string with multiple values.
        /// </summary>
        /// <remarks>
        /// See static constructor for more information.
        /// </remarks>
        internal static readonly Dictionary<string, ICollection<string>> IniParseDataMultiple;

        #endregion

        #region Properties
        //--------------------------------------------------------------------
        // Properties
        //--------------------------------------------------------------------

        #endregion

        #region Constructors / Destructor
        //--------------------------------------------------------------------
        // Constructors / Destructor
        //--------------------------------------------------------------------

        /// <summary>
        /// Static constructor for local variable initialization.
        /// </summary>
        static Resources()
        {
            IniParseData = new Dictionary<string, string>();
            IniParseData[IniParseFirstLineKey] = IniParseFirstLineValue;
            IniParseData[IniParseSecondLineKey] = IniParseSecondLineValue;
            IniParseData[IniParseThirdLineKey] = IniParseThirdLineValue;
            IniParseData[IniParseForthLineKey] = IniParseForthLineValue;
            IniParseData[IniParseFithLineKey] = IniParseFithLineValue;

            IniParseDataMultiple = new Dictionary<string, ICollection<string>>();
            IniParseDataMultiple[IniParseFirstLineKey] = new[] { IniParseFirstLineValue };
            IniParseDataMultiple[IniParseSecondLineKey] = new[] { IniParseSecondLineValue };
            IniParseDataMultiple[IniParseThirdLineKey] = new[] { IniParseThirdLineValue };
            IniParseDataMultiple[IniParseForthLineKey] = new[] { IniParseForthLineValue };
            IniParseDataMultiple[IniParseFithLineKey] = new[] { IniParseFithLineValue };
        }

        #endregion

        #region Methods
        //--------------------------------------------------------------------
        // Methods
        //--------------------------------------------------------------------

        #endregion
    }
}
